#=============================================================================================
# @TITLE					New Database - 5rd step.
#
# @NUMBER					WDBM_FKT_01024
#
# @DESCRIPTION		A new database will be created by using the database wizard.
#
# @EXP_RESULT			The service is running.
#
# @REQUIREMENTS		Test: WDBM_FKT_01000; WDBM_FKT_00100; WDBM_FKT_01020; WDBM_FKT_01021;
# @								WDBM_FKT_01022; WDBM_FKT_01023;
#=============================================================================================

public function trim (in str) {
	if (substr(str, 1, 1) == " ") {

		str = trim(substr(str, 2));
	}
	if (substr(str, length(str)) == " ") {
		str = trim(substr(str, 1, length(str)-1));
	}
	return (str);
}

static table_general_head_ok = 1;
static table_general_head [] = {"Name","Value","New Value","Description"};

static table_extended_head_ok = 1;
static table_extended_head [] = {"Name","Value","New Value","Description"};

										#Name, Default Value, minValue, maxValue
										#Name & default value must be declared.
										#minValue & maxValue are optional --> enter empty String
										#{"RESTART_SHUTDOWN","MANUAL","MANUAL","AUTO"},

static parameter_value_array_g1 [] = {  {"MAXLOGVOLUMES","1","1","32"},
										{"MAXDATAVOLUMES","1","1","255"},
										{"MAXBACKUPDEVS","2","1","32"},
										#{"MAXCPU","1","1","128"},
										{"MAXUSERTASKS","50","1",""},
										#{"MAXLOCKS","2520","500",""},
										{"CACHE_SIZE","10000","800","2147483640"}
									 };
									
static parameter_count1 = 5;
static current_row_number = 1;
#=============================================================================================
# @STEP 1			Getting kernel version and instance type.
#=============================================================================================
# don't check for KERNELVERSION and INCTANCE_TYPE since 20.01.2005
#set_window (work_window, 1);
#if (new_interface == "1") {
#	web_obj_get_text("1x1_3","#3","#1",cell_value_1,"","",1);
#	web_obj_get_text("1x1_3","#4","#1",cell_value_2,"","",1);
#} else {
#	tbl_get_cell_data("1x1_5","#3","#1",cell_value_1);
#	tbl_get_cell_data("1x1_5","#4","#1",cell_value_2);
#}
#if (trim(cell_value_1) == "KERNELVERSION") {
#	tl_step("Kernelversion","0","correctly displayed");
#} else {
#	tl_step(cell_value_1 & " - is shown in the first tablefield","1","not expected");
#}
#
#if (trim(cell_value_2) == "INSTANCE_TYPE") {
#	tl_step ("INSTANCE_TYPE", "0", "correctly displayed");
#} else {
#	tl_step (cell_value_2 & " - is shown in the first tablefield", "1", "not expected");
#}
#=============================================================================================
# @STEP 2			Checking all general parameters.
#=============================================================================================
for (i=0;i<parameter_count1;i++) {
			
	set_window(work_window, 1);
	if (new_interface == "1") {
		tbl_get_rows_count("1x1_3",rows_count);
	} else {
		tbl_get_rows_count("1x1_5",rows_count);	
	}
	#getting current row number
	for (n=1;n<rows_count;n++) {
		
		if (new_interface == "1") {
			web_obj_get_text("1x1_3","#"&n,"#1",cell_value,"","",1);
		} else {
			tbl_get_cell_data("1x1_5","#"&n,"#1",cell_value);
		}
		if (trim(cell_value) == parameter_value_array_g1 [i,0]) {
		
			current_row_number = n;
			break;
		}
	}
	
	set_window (work_window, 2);
	web_link_click (parameter_value_array_g1 [i,0]);	
	
	set_window (work_window, 2);
	if (new_interface == "1") {
	
		obj_get_info ("Information - CACHES - DB73", "text", text);
		obj_get_info ("1x1", "text", value1);
		obj_get_info ("ActValueRO","value",value2);
		obj_get_info ("Value", "value", value3);
	} else {
	
		obj_get_info ("Information - CACHES - DB73", "text", text);
		obj_get_info ("1x1", "text", value1);
		obj_get_info ("1x1_2", "text", value2);
		obj_get_info ("Value", "value", value3);
	}
	
	if (match (text, parameter_value_array_g1 [i,0]) != 0 &&
		#match (value1, parameter_value_array_g1 [i,0]) != 0 &&
		match (value2, parameter_value_array_g1 [i,1]) != 0 &&
		match (value3, parameter_value_array_g1 [i,1]) != 0) {
		
		tl_step ("Parameter Properties - " & parameter_value_array_g1 [i,0] , "0", "All checked values are okay");
	} else {
		tl_step ("Parameter Properties - " & parameter_value_array_g1 [i,0] , "1", "Not all checked values are okay");
	}
#=============================================================================================
# @STEP 3.1			Checking low limit.
#=============================================================================================
	if (parameter_value_array_g1 [i,2] != "") {
	
		set_window (work_window, 2);
		edit_set ("Value", parameter_value_array_g1 [i,2]);
		
		if (parameter_value_array_g1 [i,1] != parameter_value_array_g1 [i,2]) {
			
			wait(3);
			web_link_click ("OK");			
			wait(5);
		
			set_window (work_window, 2);
			if (new_interface == "1") {
				web_obj_get_text ("1x1_3", current_row_number, "#3", cell_value, "", "", 1);
			} else {
				tbl_get_cell_data ("1x1_5", current_row_number, "#3", cell_value);
			}
			
			if (trim(cell_value) == parameter_value_array_g1 [i,2]) {
				
				tl_step ("Parameter check - " & parameter_value_array_g1 [i,0] & " - new value (min)", "0", "New value appeared in list");
			} else {
				tl_step ("Parameter check - " & parameter_value_array_g1 [i,0] & " - new value (min)", "1", "New value did not appeare in list");
			}
		} else {
			wait(4);
			set_window (work_window, 2);
			web_link_click ("Cancel");
		}
		
		set_window (work_window, 2);
		web_link_click (parameter_value_array_g1 [i,0]);
		
		if (is_numeric (parameter_value_array_g1 [i,2]) == -1 &&
			parameter_value_array_g1 [i,2] != "") {
			
			set_window (work_window, 2);
			edit_set ("Value", (parameter_value_array_g1 [i,2] - 1));
			
			wait(3);
			web_link_click ("OK");				
			wait(5);
			
			set_window (work_window, 2);
			if (new_interface == "1") {
				web_obj_get_text("Information - CACHES - DB73","#1","#1",text,"","",1);
				
				if (obj_exists("1x1_2", 0) == E_OK) {
					tbl_get_cell_data("1x1_2","#1","#2",cell_value);
				}
			} else {
				text == "";
				cell_value == "";
			}	
			if (match (text, "Error") != 0 ||
				match (cell_value, "Constraint not satisfied.") != 0 ||
				obj_exists("msgerro",0) == 0) {

				tl_step ("Parameter check - " & parameter_value_array_g1 [i,0] & " - new value (min, 1 under)","0","Constraint error occured");
				
				wait(3);
				set_window (work_window, 2);
				web_link_click ("OK");
			} else {
				
				tl_step ("Parameter check - " & parameter_value_array_g1 [i,0] & " - new value (min, 1 under)","1","Constraint error did not occure");
				
				set_window (work_window, 2);
				web_link_click (parameter_value_array_g1 [i,0]);
				wait(3);
			}
		}
	}
#=============================================================================================
# @STEP 3.2			Checking upper limit.
#=============================================================================================
	if (parameter_value_array_g1 [i,3] != "") {
	
		set_window (work_window, 2);
		edit_set ("Value", parameter_value_array_g1 [i,3]);
		
		if (parameter_value_array_g1 [i,1] != parameter_value_array_g1 [i,3]) {
			
			wait(3);
			set_window (work_window, 2);
			web_link_click ("OK");			
			wait(5);
		
			set_window (work_window, 2);			
			if (new_interface == "1") {
				web_obj_get_text ("1x1_3", current_row_number, "#3", cell_value, "", "", 1);
			} else {
				tbl_get_cell_data ("1x1_5", current_row_number, "#3", cell_value);
			}
			
			if (trim(cell_value) == parameter_value_array_g1 [i,3]) {				
				tl_step ("Parameter check - " & parameter_value_array_g1 [i,0] & " - new value (max)", "0", "New value appeared in list");
			} else {
				tl_step ("Parameter check - " & parameter_value_array_g1 [i,0] & " - new value (max)", "1", "New value did not appeare in list");
			}
		} else {
			set_window (work_window, 2);
			web_link_click ("Cancel");
			wait(3);
		}
		
		set_window (work_window, 2);
		web_link_click (parameter_value_array_g1 [i,0]);
		wait(3);
		
		if (is_numeric (parameter_value_array_g1 [i,3]) == -1 &&
			parameter_value_array_g1 [i,3] != "") {
			
			set_window (work_window, 2);
			edit_set ("Value", (parameter_value_array_g1 [i,3] + 1));
			
			web_link_click ("OK");				
			wait(5);
			
			set_window (work_window, 2);
			if (new_interface == "1") {
				web_obj_get_text("Information - CACHES - DB73","#1","#1",text,"","",1);
				
				if (obj_exists("1x1_2", 0) == E_OK) {
					tbl_get_cell_data("1x1_2","#1","#2",cell_value);
				}
			} else {
				text == "";
				cell_value == "";
			}	
			if (match (text, "Error") != 0 ||
				match (cell_value, "Constraint not satisfied.") != 0 ||
				obj_exists("msgerro",0) == 0) {
				
				tl_step ("Parameter check - " & parameter_value_array_g1 [i,0] & " - new value (max, 1 over)","0","Constraint error occured");

				set_window (work_window, 2);
				web_link_click ("OK");
			} else {
				
				tl_step ("Parameter check - " & parameter_value_array_g1 [i,0] & " - new value (max, 1 over)","1","Constraint error did not occure");
				
				set_window (work_window, 2);
				web_link_click (parameter_value_array_g1 [i,0]);
				wait(3);
			}
		}
		wait(3);
		set_window (work_window, 2);
		if (obj_exists ("Cancel", 0) != 0) {
		
			set_window (browser_window_name, 3);
			toolbar_button_press("MainToolBar", "ReLoad");
		}

		set_window (work_window, 2);
		web_link_click ("Cancel");
		wait(5);
	} else {
		wait(3);
		set_window (work_window, 2);
		web_link_click ("Cancel");
		wait(3);
	}
	
	#Setting back default value
	
	set_window (work_window, 2);
	web_link_click (parameter_value_array_g1 [i,0]);
	
	set_window (work_window, 2);
	obj_get_info("Value", "text", text);
	
	if (text != parameter_value_array_g1 [i,1]) {
	
		edit_set ("Value", (parameter_value_array_g1 [i,1]));
		web_link_click ("OK");
		
		wait(5);
	} else {
		set_window (work_window, 2);
		web_link_click ("Cancel");
	}
}
#=============================================================================================
# @STEP 4			Changing Log Mode if possible to mirrored. --> is not working right now.
#=============================================================================================
#if (obj_exists("LOG_MIRRORED",0) == 0) {
# 	
#	set_window(work_window,5);
# 	web_link_click("LOG_MIRRORED");
# 	web_sync(4);
# 	edit_set("Value","YES");
# 	web_link_click("OK");
# }
#=============================================================================================
# @STEP 5			Changing to next step.
#=============================================================================================
set_window(work_window, 1);
web_link_click("Next");

wait(3);
#=============================================================================================
# @STEP 6			Checking to browser window content.
#=============================================================================================
set_window(work_window, 1);
if (new_interface == "1") {
	web_obj_get_text("Information - CACHES - DB73","#1","#1",cell_value_3,"","",1);
	web_obj_get_text("Owner","#1","#1",cell_value_4,"","",1);
} else {
	tbl_get_cell_data("Data Devspaces","#1","#1",cell_value_3);
	tbl_get_cell_data("1x1","#1","#2",cell_value_4);
}
if ((cell_value_3 == "Data Devspaces" && cell_value_4 == "Specify the devspaces.") ||
	(cell_value_3 == "Volumes" && cell_value_4 == "Data Devspaces Volumes" && new_interface == "1")) {
	tl_step("Next step was reached","0","Window content correct");
} else {
	tl_step("Next step was not reached","1","Window content incorrect");
}
